package org.example.judge_pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@TableName("tb_Contest")
public class Contest implements Serializable {
    /**
     * 比赛表主键
     */
    private java.lang.String id;

    /**
     * 比赛名称
     */
    private java.lang.String title;

    /**
     * 比赛简介
     */
    private java.lang.String description;

    /**
     * 比赛创建者用户ID
     */
    private java.lang.String authorId;

    /**
     * 0为公开比赛，1为私密比赛
     */
    private java.lang.Integer auth;

    /**
     * 报名比赛密码，auth = 1
     */
    private java.lang.String password;

    /**
     * 比赛编码
     */
    private String code;

    /**
     * 不为空表示为克隆赛ID
     */
    private java.lang.String contestId;

    /**
     * 比赛开始时间
     */
    private Date startTime;

    /**
     * 比赛结束时间
     */
    private Date endTime;

    /**
     * 比赛状态，0为开始，1进行中，2已结束
     */
    private java.lang.Integer status;

    /**
     * 比赛是否可见，0可见，1不可见
     */
    private java.lang.Integer ishow;

    /**
     * 是否开始封榜，0开启，1不开启
     */
    private java.lang.Integer sealRank;

    /**
     * 封榜的开始时间
     */
    private Date sealRankTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;


    /**
     * 比赛报名开始时间
     */
    private Date registerBeginTime;

    /**
     * 比赛报名截止时间
     */
    private Date registerEndTime;
    /**
     * 缩略图片ID
     */
    private String avatarId;
    /**
     * 报名人数
     */
    @TableField(exist = false)
    private Integer RegisterPerson = 0;

    @TableField(exist = false)
    private List<ContestProblem> problems;

    public String getRedisRegisterPersonKey(){
        return this.id+"_registerPerson";
    }
    public static String getRedisRegisterPersonKey(String id){
        return id+"_registerPerson";
    }
}
